package insight.google.game.era.core;

import insight.google.game.era.bo.GameUser;
import insight.google.game.era.core.exception.InsightException;
import insight.google.game.era.data.TransactionHandler;
import insight.google.game.era.data.User;

/**
 * All data instance which has storage in server and client side, must implement this interface. 
 * @author MMC
 *
 */
public interface IServerClientData {
	public long getDataVersion() throws InsightException;
	
	public boolean upgradeDataVersion() throws InsightException;
	
	/**
	 * send server side's data with dataVersion to client side for data consistence. 
	 * @return
	 * @throws InsightException
	 */
	public boolean publicData(GameUser user) throws InsightException;
	
	public boolean publicData(User user,long dataVersion) throws InsightException;
	
}
